package com.cloudbroker.bcs.csvc.lightinvesting.api.t2service;

import com.cloudbroker.bcs.common.annotation.CreditsOper;
import com.cloudbroker.bcs.common.annotation.DecodePwd;
import com.cloudbroker.bcs.common.annotation.NoLogin;
import com.cloudbroker.bcs.common.annotation.NoToken;
import com.cloudbroker.bcs.common.constants.type.BusinessType;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.*;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.baseRelevanted.*;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.cashTransactions.AvailableMoneyForm;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.cashTransactions.BindCapitalAccountForm;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.cashTransactions.UnbundCapitalAccountForm;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.fansRelated.*;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.interestRelated.*;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.response.*;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

/**
 * Created by fangyf18371 on 2016/7/13.
 * 国联领投宝中台接口
 */
@ServiceModule
public interface LedT2Service {
    /**
     * 注册
     * @param param
     * @return
     */
    @NoLogin
    @NoToken
    @Service(functionId = "848520", desc = "用户注册")
    public RegBackVo func_register_authuser(@ServiceParam("param") RegForm param);

    @NoToken
    @Service(functionId = "848519",desc="修改昵称")
    public ModAliasVo func_alias_mod(@ServiceParam("param") ModAliasForm param);

    @Service(functionId = "848557",desc="组合申请")
    public CombineApplyVo func_combine_apply(@ServiceParam("param") CombineApplyForm param);

    @DecodePwd
    @Service(functionId = "848651",desc="个股委托")
//    public StocksEntrustQryBackVo addStocksEntrust(@ServiceParam("param") StocksEntrustForm param);
    public StocksEntrustVo func_stock_entrust_add(@ServiceParam("param") StocksEntrustForm param);

    @Service(functionId = "848652",desc="组合委托")
//    public CombEntrustQryBackVo addCombEntrust(@ServiceParam("param") CombEntrustForm param);
    public CombEntrustVo func_comb_entrust_add(@ServiceParam("param") CombEntrustForm param);

    @Service(functionId = "848570",desc="关注的组合")
    public FocusCombineQryBackVo func_combine_collect_info_qry(@ServiceParam("param") FocusCombineForm param);

    @Service(functionId = "848523",desc="关注的投顾")
    public FocusInterestQryBackVo func_interest_focus(@ServiceParam("param") FocusInterestForm param);

    @NoLogin
    @Service(functionId = "848552",desc="已订阅的组合")
    public SubscriptionCombineQryBackVo func_comb_subscription(@ServiceParam("param") SubscriptionCombineForm param);

    @NoLogin
    @NoToken
    @Service(functionId = "848550",desc="组合详情")
//    public CombDetailQryBackVo combDetails(@ServiceParam("param") CombDetailForm param);
    public CombDetailQryBackVo func_comb_details(@ServiceParam("param") CombDetailForm param);

    @NoLogin
    @Service(functionId = "848574",desc="组合推荐信息查询")
    public RecommendedCombQryBackVo func_comb_recommend(@ServiceParam("param") RecommendedCombForm param);

    @NoLogin
    @Service(functionId = "848553",desc="组合排名")
    public CombRankQryBackVo func_comb_rank(@ServiceParam("param") CombRankForm param);

    @Service(functionId = "848568",desc="组合收藏")
    public CombineCollectVo func_combine_collect(@ServiceParam("param") CombineCollectForm param);

    @Service(functionId = "848569",desc="组合收藏取消")
    public CombCollectCancelVo func_combine_collect_cancel(@ServiceParam("param") CombCollectCancelForm param);

    @Service(functionId = "848555",desc="组合订阅")
//    public CombSubscribeQryBackVo combSubscribe(@ServiceParam("param") CombSubscribeForm param);
    public CombSubscribeVo func_combine_focus(@ServiceParam("param") CombSubscribeForm param);

    @Service(functionId = "848556",desc="组合订阅取消")
    public CombSubscribeCancelVo func_combine_focus_cancel(@ServiceParam("param") CombSubscribeCancelForm param);

    @NoLogin
    @Service(functionId = "848703",desc="组合历史收益率查询")
    public CombHistoryYieldQryBackVo func_comb_history_Yyield_query(@ServiceParam("param") CombHistoryYieldForm param);

    @Service(functionId ="848559",desc="组合关闭申请")
    public CombApplyCloseVo func_comb_apply_close(@ServiceParam("param") CombApplyCloseForm param);

    @NoLogin
    @Service(functionId ="848571",desc="组合费用查询" )
//    public CombCostQryBackVo queryCombCost(@ServiceParam("param") CombCostForm param);
    public CombCostVo func_comb_cost_query(@ServiceParam("param") CombCostForm param);

    @Service(functionId = "848564",desc="组合信息修改")
    public ModCombInfoVo func_comb_info_mod(@ServiceParam("param") ModCombInfoForm param);

    @NoLogin
    @DecodePwd
    @Service(functionId ="848657",desc="可用资金查询")
    public AvailableMoneyQryBackVo func_available_money_query(@ServiceParam("param") AvailableMoneyForm param);
//    public AvailableMoneyVo func_available_money_query(@ServiceParam("param") AvailableMoneyForm param);

    @NoLogin
    @Service(functionId = "848667",desc = "可用持仓查询")
    public PositionQryBackVo func_position_query(@ServiceParam("param") PositionForm param);

    @NoLogin
    @Service(functionId = "848650",desc="当日调仓查询")
    public WarehouseByDayQryBackVo func_warehouse_day_query(@ServiceParam("param") WarehouseByDayForm param);

    @NoLogin
    @Service(functionId = "848702",desc="历史调仓记录查询")
    public WarehouseByHistoryQryBackVo func_warehouse_history_query(@ServiceParam("param") WarehouseByHistoryForm param);

    @Service(functionId = "848514",desc = "绑定资金账号")
//    public BindCapitalAccountQryBackVo bindCapitalAccount(@ServiceParam("param") BindCapitalAccountForm param);
    public BindCapitalAccountVo func_capital_account_bind(@ServiceParam("param") BindCapitalAccountForm param);

    @Service(functionId ="848515",desc="解绑资金账号")
    public UnbundCapitalAccountQryBackVo func_capital_account_unbund(@ServiceParam("param")UnbundCapitalAccountForm param);


    @DecodePwd
    @NoToken
    @NoLogin
    @Service(functionId = "848664",desc="交易登录")
//    public TradLoginQryBackVo tradLogin(@ServiceParam("param")TradLoginForm param);
    public TradLoginVo func_trad_login(@ServiceParam("param")TradLoginForm param);

    @NoLogin
    @Service(functionId = "848527",desc="推荐投顾查询")
    public RecommendInterestQryBackVo func_recommend_interest_query(@ServiceParam("param") RecommendInterestForm param);

    @NoLogin
    @Service(functionId = "848524",desc="投顾排名")
    public InterestRankQryBackVo func_interest_rank_query(@ServiceParam("param") InterestRankForm parma);

    @CreditsOper(type = BusinessType.FOCUS_LEADER)
    @Service(functionId = "848521",desc="投顾收藏")
//    public FocusInterestByQryBackVo addFocusInterest(@ServiceParam("param") FocusInterestByForm param);
    public InterestFocusVo func_focus_interest_add(@ServiceParam("param") FocusInterestByForm param);

    @NoLogin
    @Service(functionId = "848525",desc="投顾详情")
//    public InterestDetailQryBackVo queryInterestDetail(@ServiceParam("param") InterestDetailForm param);
    public InterestDetailVo func_interest_detail_query(@ServiceParam("param") InterestDetailForm param);

    @NoLogin
    @Service(functionId = "848707",desc="投顾历史收益率查询")
    public InterestHistoryYieldQryBackVo func_interest_history_yield_query(@ServiceParam("param")InterestHistoryYieldForm param);

    @Service(functionId = "848705",desc="消息通知")
    public MessageAndNoticeQryBackVo  func_message_and_notice_get(@ServiceParam("param")MessageAndNoticeForm param);

    @Service(functionId = "363117",desc="投顾认证")
//    public InterestCertQryBackVo addInterestCert(@ServiceParam("param") InterestCertForm param);
    public InterestCertVo func_interest_cert__add(@ServiceParam("param") InterestCertForm param);

    @NoLogin
    @Service(functionId = "848551",desc="组合成分查询")
    public CombCompositionVo func_comb_composition_query(@ServiceParam("param") CombCompositionForm param);

    @NoLogin
    @Service(functionId = "848706",desc="组合历史调仓记录查询")
    public CombHisComentrustQryBackVo func_comb_his_comentrust(@ServiceParam("param") CombHisComentrustForm param);

    @Service(functionId = "848537",desc="达人签约")
    public ComuserSignVo func_comuser_sign(@ServiceParam("param") ComuserSignForm param);

    @Service(functionId = "848538",desc="达人解约")
    public ComuserSignCancelVo func_comuser_sign_cancel(@ServiceParam("param") ComuserSignCancelForm param);

    @Service(functionId = "848536",desc="达人签约客户查询")
    public ComadviserSignQryBackVo func_comadviser_sign_qry(@ServiceParam("param") ComadviserSignQryForm param);

    @Service(functionId="847500",desc="用户费用参数设置")
    public FareargVo func_farearg_set(@ServiceParam("param") FareargFrom param);

//    @NoLogin
    @Service(functionId = "847501",desc="用户费用参数查询")
    public FareargQryVo func_farearg_qry(@ServiceParam("param")FareargQryForm param);

    @NoLogin
    @Service(functionId = "848535",desc="用户已签约达人查询")
    public ComuserSignQryBackVo func_comuser_sign_qry(@ServiceParam("param") ComuserSignQryForm param);

    @NoLogin
    @Service(functionId = "848513",desc="用户基本信息查询")
    public BasicUserInfoQryVo func_basic_user_info(@ServiceParam("param") BasicUserInfoForm param);

    @Service(functionId = "848522",desc="投顾收藏取消")
    public ComuserCollectCancelVo func_comuser_collect_cancel(@ServiceParam("param") ComuserCollectCancelForm param);

    @NoLogin
    @Service(functionId="847504",desc="用户注册与绑定业务账户")
    public AuthuserRegbindVo func_authuser_regbind(@ServiceParam("param") AuthuserRegbindForm param);


    @NoLogin
    @Service(functionId = "847503",desc="短信发送")
    public SendMsgVo func_send_msg(@ServiceParam("param")SendMsgForm param);

    @NoLogin
    @Service(functionId = "101000",desc="短信发送")
    public SendMsgVo func_send_message(@ServiceParam("param")SendMsgForm param);

    @Service(functionId = "100003",desc="用户中心用户注册与绑定业务账户\n")
    public AuthuserRegbindVo func_services_authuser_regbind(@ServiceParam("param") AuthuserRegbindForm param);

    @Service(functionId = "848687",desc="批量个股委托投资依据修改")
    public ComentrustDetailReasonModVo func_comentrust_detail_reason_mod(@ServiceParam("param") ComentrustDetailForm param);

    @Service(functionId = "848714",desc="用户签约达人历史查询")
    public UserAdviserHisQryVo func_user_adviser_his_qry(@ServiceParam("param") UserAdviserHisQryForm param);

    @Service(functionId = "848715",desc="个股关联投顾信息查询")
    public ProdcodeAdviserHisQryVo func_prodcode_adviser_his_qry(@ServiceParam("param") ProdcodeAdviserHisQryForm param);


    @DecodePwd
    @Service(functionId = "848684",desc="批量个股委托")
    public BatchStocksEntrustVo func_batch_stock_entrust(@ServiceParam("param") BatchStocksEntrustForm param);

}
